/*
 * WaterHAL.h
 *
 *  Created on: Oct 1, 2012
 *      Author: root
 */

#ifndef IWATERHAL_H_
#define IWATERHAL_H_
#include "EventAggregator.h"

class LiquidDistributionChannelingDeviceController;

class IWaterHAL
{
public:
	virtual ~IWaterHAL() = 0;
	virtual int getWaterLevel();
	virtual void registerWantedWaterLevel(int level);
	//virtual bool getIsWaterAtRegisteredLevel();
	//EventAggregator *onWaterLevelAtRegisteredLevel;
	//EventAggregator *onWaterPressureHigh; //INTERRUPT!
    //EventAggregator *onWaterPressureLow; //INTERRUPT!
	virtual void openDrain();
	virtual void closeDrain();
	virtual void openSink();
	virtual void closeSink();
};


#endif /* IWATERHAL_H_ */
